package com.egao.common.module.student.entity;

import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@ApiModel(description = "学生签约去向修改信息")
@TableName("student_sign_edit")
@Data
public class StudentSignEdit implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("老网签数据ID")
    private Integer oldId;
    @ApiModelProperty("老网签数据类型 1协议就业Sign 2非协议就业Employment")
    private Integer oldCategory;

    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("毕业去向ID")
    private Integer studentSignId;
    @ApiModelProperty("用户ID")
    private Integer userId;
    @ApiModelProperty("学生ID")
    private Integer studentId;
    @ApiModelProperty("单位ID")
    private Integer companyId;
    @ApiModelProperty("添加时间")
    private Date createTime;
    @ApiModelProperty("编辑时间")
    private Date updateTime;
    @ApiModelProperty("逻辑删除 0正常 1删除")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty("空白协议ID")
    private Integer blankId;

    @ApiModelProperty("基层就业标志")
    private String basicMark;

    @ApiModelProperty("是否出国出境工作 0是 1否")
    private String goAbroad;

    @ApiModelProperty("信息编号")
    private String serialNumber;
    @ApiModelProperty("信息状态 0有效 1无效")
    private String state;
    @ApiModelProperty("签约审核状态")
    private String signState;
    @ApiModelProperty("派遣信息审核状态")
    private String dispatchState;
    @ApiModelProperty("就业方式 7种")
    private String signCategory;
    @ApiModelProperty("签约方式")
    private String signWay;
    @ApiModelProperty("签约时间 院级审核通过时间 yyyy-MM-dd")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_MINUTE_PATTERN)
    private Date signTime;
    @ApiModelProperty("应约时间")
    private Date signAgreedTime;
    @ApiModelProperty("邀约时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_MINUTE_PATTERN)
    private Date signInvitedTime;
    @ApiModelProperty("邀约过期时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_MINUTE_PATTERN)
    private Date signExpiredTime;
    @ApiModelProperty(value = "解约时间", notes = "校审核通过时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_MINUTE_PATTERN)
    private Date signTerminationTime;


    @ApiModelProperty("解约理由")
    private String terminationTitle;
    @ApiModelProperty("解约说明")
    private String terminationContent;
    @ApiModelProperty("解约函")
    private String terminationImg;
    @ApiModelProperty("解约申请时间")
    private Date terminationTime;


    @ApiModelProperty("改派次数")
    private Integer dispatch;
    @ApiModelProperty(value = "最后一次改派时间", notes = "改派审核通过时间")
    private Date dispatchTime;

    @ApiModelProperty("毕业去向确认 0确认 1未确认")
    private String confirmState;
    @ApiModelProperty("毕业去向确认时间")
    private Date confirmDate;


    @ApiModelProperty("学院辅导员")
    private Integer collegeUserId;
    @ApiModelProperty("学院辅导员审核说明")
    private String collegeUserContent;
    @ApiModelProperty("学校审核人")
    private Integer schoolUserId;
    @ApiModelProperty("学校审核说明")
    private String schoolUserContent;


    @ApiModelProperty("协议 0网签 1非网签")
    private String dealCategory;
    @ApiModelProperty("协议 同意学生自理 0学生自理 1单位填写")
    private String dealRolePick;
    @ApiModelProperty("协议 单位组织机构代码(工商注册号)")
    private String dealCompanyOrganizationCode;
    @ApiModelProperty("协议 签约单位名称")
    private String dealSignCompanyName;
    @ApiModelProperty("协议 单位上级主管部门")
    private String dealCompanySuperiorDepartment;
    @ApiModelProperty("协议 单位所在地级别 SELECT")
    private String dealCompanyAddressLevel;
    @ApiModelProperty("协议 单位性质 SELECT")
    private String dealCompanyNature;
    @ApiModelProperty("协议 单位行业 SELECT")
    private String dealCompanyIndustry;
    @ApiModelProperty("协议 湖北重点产业 SELECT")
    private String dealHbIndustry;
    @ApiModelProperty("协议 单位联系人")
    private String dealCompanyContactName;
    @ApiModelProperty("协议 单位联系方式")
    private String dealCompanyContactMobile;
    @ApiModelProperty("协议 单位邮政编码")
    private String dealCompanyContactZip;
    @ApiModelProperty("协议 单位电子邮箱")
    private String dealCompanyContactEmail;
    @ApiModelProperty("协议 单位详细地址")
    private String dealCompanyContactAddress;
    @ApiModelProperty("协议 实际单位名称")
    private String dealCompanyName;
    @ApiModelProperty("协议 实际单位所在地")
    private String dealCompanyAddress;
    @ApiModelProperty(value = "协议 合同到期时间 yyyy-MM", notes = "选择'长期合同'或填写'具体日期'")
    private String dealExpireTime;
    @ApiModelProperty("协议 工作地点")
    private String dealWorkAddress;
    @ApiModelProperty("协议 工作岗位")
    private String dealWorkPosition;
    @ApiModelProperty("协议 工作职位类别 SELECT")
    private String dealWorkJobCategory;
    @ApiModelProperty("协议 报到期限 yyyy-MM-dd")
    private String dealReportTime;
    @ApiModelProperty("协议 报到地点")
    private String dealReportAddress;
    @ApiModelProperty("协议 试用期时间至 yyyy-MM-dd")
    private String dealTryoutTime;
    @ApiModelProperty(value = "协议 起薪(试用期为)", notes = "待定 / 按用人单位薪酬福利制度执行 / 自定义")
    private String dealTryoutSalary;
    @ApiModelProperty(value = "协议 起薪(转正后为)", notes = "待定 / 按用人单位薪酬福利制度执行 / 自定义")
    private String dealFormalSalary;
    @ApiModelProperty(value = "协议 违约金", notes = "0或具体正整数值 要求：1总金额不能超过多少 2不能超过薪资的多少倍")
    private String dealPenalty;
    @ApiModelProperty(value = "协议 协议备注")
    private String dealRemarks;


    @ApiModelProperty("灵活 单位地址")
    private String agileAddress;
    @ApiModelProperty("灵活 到岗时间 yyyy-MM-dd")
    private String agilePositionTime;
    @ApiModelProperty("灵活 拟聘用期限 yyyy-MM-dd")
    private String agileTermTime;


    @ApiModelProperty("创业 情况说明")
    private String ventureExplain;
    @ApiModelProperty("创业 创业单位实体名称")
    private String ventureCompanyName;
    @ApiModelProperty("创业 创业单位经营范围")
    private String ventureComapnyScope;
    @ApiModelProperty("创业 创业单位经营场所")
    private String ventureComapnyPlace;
    @ApiModelProperty("创业 工商登记注册 0有 1无")
    private String ventureBusinessRegistered;
    @ApiModelProperty("创业 工商登记照片")
    private String ventureBusinessImg;
    @ApiModelProperty("创业 经营场所现场照片")
    private String venturePlaceImg;
    @ApiModelProperty("创业 注册时间 yyyy-MM-dd")
    private String ventureRegisteredTime;
    @ApiModelProperty("创业 网址")
    private String ventureWebsite;


    @ApiModelProperty("自由职业 实际工作所在地")
    private String freeWorkAddress;
    @ApiModelProperty("自由职业 工作内容(或行业)")
    private String freeWorkContent;


    @ApiModelProperty("升学 上传调档函或录取通知书扫描件、网上录取公示")
    private String studyImg;
    @ApiModelProperty("升学 录取院校名称")
    private String studySchoolName;
    @ApiModelProperty("升学 录取院校所在地")
    private String studySchoolAddress;
    @ApiModelProperty("升学 录取院校所属省份 SELECT")
    private String studySchoolProvince;
    @ApiModelProperty("升学 录取院校所在地级别 SELECT")
    private String studySchoolAddressLevel;
    @ApiModelProperty("升学 录取方式 SELECT")
    private String studySchoolAdmissionWay;
    @ApiModelProperty("升学 是否跨专业 SELECT")
    private String studySchoolCrossMajor;
    @ApiModelProperty("升学 附加一")
    private String studyExtraOne;
    @ApiModelProperty("升学 附加二")
    private String studyExtraTwo;


    @ApiModelProperty("出国出境 洲")
    private Integer abroadContinent;
    @ApiModelProperty("出国出境 上传录取院系的offer复印件或护照复印件，不能使用港澳台通行证")
    private String abroadOfferImg;
    @ApiModelProperty("出国出境 类型 1留学 2工作")
    private String abroadType;
    @ApiModelProperty("出国出境 录取院校")
    private String abroadSchool;
    @ApiModelProperty("出国出境 留学国家/地区 或 工作国家/地区")
    private String abroadCountry;
    @ApiModelProperty("出国出境 留学院校外文名称")
    private String abroadSchoolEn;
    @ApiModelProperty("出国出境 留学专业中文名称")
    private String abroadMajorCn;
    @ApiModelProperty("出国出境 留学专业外文名称")
    private String abroadMajorEn;
    @ApiModelProperty("出国出境 留学学历")
    private String abroadDegree;


    @ApiModelProperty("待就业 待就业类别")
    private String waitCategory;


    @ApiModelProperty(value = "中心接收函照片", notes = "协议就业、灵活就业、自由职业、出国出境、待就业")
    private String centerImg;


    @ApiModelProperty("派遣 录用方式 SELECT")
    private String dispatchHiredWay;
    @ApiModelProperty("派遣 就业类别 SELECT")
    private String dispatchJobCategory;
    @ApiModelProperty(value = "派遣 毕业去向 SELECT", notes = "根据录用方式级联")
    private String dispatchGradWhere;
    @ApiModelProperty(value = "派遣 报到证签发类别 SELECT", notes = "根据录用方式级联")
    private String dispatchReportIssuedCategory;
    // @ApiModelProperty("派遣 报到证签往单位名称(报到证抬头) INPUT")
    @ApiModelProperty("派遣 档案转递单位名称原报到证前往单位名称")
    private String dispatchReportCompany;
    @ApiModelProperty("派遣 报到证迁往单位所属省份 SELECT")
    private String dispatchReportCompanyProvince;
    // @ApiModelProperty("派遣 报到证签往单位所在地")
    @ApiModelProperty("派遣 档案转递单位所在地原报到证签往单位所在地")
    private String dispatchReportCompanyAddress;
    @ApiModelProperty("派遣 档案转递单位名称 INPUT")
    private String dispatchArchivesCompany;
    @ApiModelProperty("派遣 档案转递地址 INPUT")
    private String dispatchArchivesAddress;
    @ApiModelProperty("派遣 档案转递邮编 INPUT")
    private String dispatchArchivesZip;
    @ApiModelProperty("派遣 档案转递联系电话 INPUT")
    private String dispatchArchivesMobile;
    @ApiModelProperty("派遣 户口迁移地址填写角色 0学生自理 1单位填写")
    private String dispatchHkAddressWho;
    @ApiModelProperty("派遣 户口迁移地址 INPUT")
    private String dispatchHkAddress;
    @ApiModelProperty("派遣 单位隶属")
    private String dispatchCompanyMembership;
    @ApiModelProperty("派遣 单位名称")
    private String dispatchCompanyName;
    @ApiModelProperty(value = "派遣 单位代码 HIDDEN", notes = "根据报到证迁往单位所属省份 或 毕业去向回原籍根据学生本人生源地区代码对应")
    private String dispatchCompanyCode;
    @ApiModelProperty("派遣 档案托管去向")
    private String dispatchManagedWhere;
    @ApiModelProperty(value = "派遣 就业状况", notes = "根据就业方式变动")
    private String dispatchJobCondition;

    @ApiModelProperty("派遣 档案转递类型")
    private String dispatchArchivesCategory;
    @ApiModelProperty("派遣 档案转递接收人")
    private String dispatchArchivesName;


    @ApiModelProperty("扩展项1")
    private String ext1;
    @ApiModelProperty("扩展项2")
    private String ext2;
    @ApiModelProperty("扩展项5")
    private String ext5;

    @ApiModelProperty("协议备案证明图")
    private String recordImg;
    @ApiModelProperty("其他需要说明事项")
    private String recordContent;

    @ApiModelProperty("收入证明图")
    private String wageImg;


    @ApiModelProperty("单位与你约定的起始薪酬是 SELECT")
    private String surveyStartingSalary;
    @ApiModelProperty("工作职位类别 SELECT")
    private String surveyPosition;
    @ApiModelProperty("从何种途径获取该单位需求信息 SELECT")
    private String surveyWay;
    @ApiModelProperty("对签约单位满意程度 SELECT")
    private String surveyCompany;
    @ApiModelProperty("工作与专业相关程度调查 SELECT")
    private String surveyJob;
    @ApiModelProperty("人职匹配 SELECT")
    private String surveyMatching;
    @ApiModelProperty("获取offer数量 SELECT")
    private String surveyOffer;
    @ApiModelProperty("对学校就业工作满意度 SELECT")
    private String surveySchool;
    @ApiModelProperty("月薪等级 SELECT")
    private String surveySalary;

    @ApiModelProperty(value = "错误提示标题", notes = "解约不通过和改派不通过流程会自动回到上一个流程导致错误无法判断显示。因此用此字段显示提示，学生手动关闭")
    private String msgTitle;
    @ApiModelProperty("错误提示内容")
    private String msgContent;

    @ApiModelProperty("档案转递单位名称是否变动 0是 1否")
    private String alterState;
    @ApiModelProperty("档案转递单位名称变动最新时间")
    private Date alterTime;
    @ApiModelProperty("变动前的档案转递单位名称")
    private String alterDispatchArchivesCompany;

    @ApiModelProperty("档案转递编号")
    private String dispatchArchivesNumber;

    @ApiModelProperty("户口迁转类型")
    private String hkqzlx;
    @ApiModelProperty("户口迁转所在地")
    private String hkqzszd;
    @ApiModelProperty("户口迁转地址")
    private String hkqzdz;

    /** Label */

    @ApiModelProperty("学号")
    @TableField(exist = false)
    private String xh;

    @ApiModelProperty("姓名")
    @TableField(exist = false)
    private String xm;

    @ApiModelProperty("性别")
    @TableField(exist = false)
    private String xb;

    @ApiModelProperty("学院")
    @TableField(exist = false)
    private String collegeName;

    @ApiModelProperty("专业")
    @TableField(exist = false)
    private String majorName;

    @ApiModelProperty("学历")
    @TableField(exist = false)
    private String xl;

    @ApiModelProperty("手机号")
    @TableField(exist = false)
    private String mobile;

    @ApiModelProperty("签约审核状态标签")
    @TableField(exist = false)
    private String signStateLabel;

    @ApiModelProperty("派遣信息审核状态标签")
    @TableField(exist = false)
    private String dispatchStateLabel;

    @ApiModelProperty("就业方式 7种标签")
    @TableField(exist = false)
    private String signCategoryLabel;

    @ApiModelProperty("签约方式标签")
    @TableField(exist = false)
    private String signWayLabel;

    @ApiModelProperty("单位所在地级别标签")
    @TableField(exist = false)
    private String dealCompanyAddressLevelLabel;

    @ApiModelProperty("单位性质标签")
    @TableField(exist = false)
    private String dealCompanyNatureLabel;

    @ApiModelProperty("单位行业标签")
    @TableField(exist = false)
    private String dealCompanyIndustryLabel;

    @ApiModelProperty("湖北重点产业标签")
    @TableField(exist = false)
    private String dealHbIndustryLabel;

    @ApiModelProperty("就业状况标签")
    @TableField(exist = false)
    private String dispatchJobConditionLabel;

    @ApiModelProperty("就业类别标签")
    @TableField(exist = false)
    private String dispatchJobCategoryLabel;

    @ApiModelProperty("毕业去向标签")
    @TableField(exist = false)
    private String dispatchGradWhereLabel;

    @ApiModelProperty("报到证签发类别标签")
    @TableField(exist = false)
    private String dispatchReportIssuedCategoryLabel;

    @ApiModelProperty("报到证迁往单位所属省份标签")
    @TableField(exist = false)
    private String dispatchReportCompanyProvinceLabel;

    @ApiModelProperty("报到证签往单位所在地标签")
    @TableField(exist = false)
    private String dispatchReportCompanyAddressLabel;

    @ApiModelProperty("单位隶属")
    @TableField(exist = false)
    private String dispatchCompanyMembershipLabel;

    @ApiModelProperty("单位与你约定的起始薪酬是标签")
    @TableField(exist = false)
    private String surveyStartingSalaryLabel;

    @ApiModelProperty("工作职位类别标签")
    @TableField(exist = false)
    private String surveyPositionLabel;

    @ApiModelProperty("从何种途径获取该单位需求信息标签")
    @TableField(exist = false)
    private String surveyWayLabel;

    @ApiModelProperty("对签约单位满意程度标签")
    @TableField(exist = false)
    private String surveyCompanyLabel;

    @ApiModelProperty("工作与专业相关程度调查标签")
    @TableField(exist = false)
    private String surveyJobLabel;

    @ApiModelProperty("人职匹配标签")
    @TableField(exist = false)
    private String surveyMatchingLabel;

    @ApiModelProperty("获取offer数量标签")
    @TableField(exist = false)
    private String surveyOfferLabel;

    @ApiModelProperty("对学校就业工作满意度标签")
    @TableField(exist = false)
    private String surveySchoolLabel;

    @ApiModelProperty("月薪等级标签")
    @TableField(exist = false)
    private String surveySalaryLabel;

    @ApiModelProperty("邀约学生ID数组")
    @TableField(exist = false)
    private List<Integer> studentIdList = new ArrayList<>();

    @ApiModelProperty("审核说明标题")
    @TableField(exist = false)
    private String checkTitle;

    @ApiModelProperty("申请解约理由")
    @TableField(exist = false)
    private String terminationTitleLabel;

    @ApiModelProperty("用户类型")
    @TableField(exist = false)
    private String userType;

    @ApiModelProperty(value = "中心接收函照片", notes = "协议就业、灵活就业、自由职业、出国出境、待就业")
    @TableField(exist = false)
    private String centerImgPreview;
    @ApiModelProperty("出国出境 上传录取院系的offer复印件或护照复印件，不能使用港澳台通行证")
    @TableField(exist = false)
    private String abroadOfferImgPreview;
    @ApiModelProperty("升学 上传调档函或录取通知书扫描件、网上录取公示")
    @TableField(exist = false)
    private String studyImgPreview;
    @ApiModelProperty("创业 工商登记照片")
    @TableField(exist = false)
    private String ventureBusinessImgPreview;
    @ApiModelProperty("创业 经营场所现场照片")
    @TableField(exist = false)
    private String venturePlaceImgPreview;
    @ApiModelProperty("解约函")
    @TableField(exist = false)
    private String terminationImgPreview;
    @ApiModelProperty("协议备案证明图")
    @TableField(exist = false)
    private String recordImgPreview;
    @ApiModelProperty("收入证明图")
    @TableField(exist = false)
    private String wageImgPreview;

    @ApiModelProperty("syszd")
    @TableField(exist = false)
    private String syszd;

    @ApiModelProperty("毕业年份")
    @TableField(exist = false)
    private Integer yearId;
}
